blob: ec68880dc0afe5cfc0cd898590b59fff68b714e8 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:161##
2# libcpp Makefile
3##
4
5SRCDIRS = .
6DESTDIR = $(DSTROOT)
7
8OBJROOT=.
9SYMROOT=.
Howard Hinnantdb0bc342010-06-28 17:19:4710export TRIPLE=-apple-
Howard Hinnantbc8d3f92010-05-11 19:42:1611
Nick Kledzik8feadca2011-05-24 20:27:3112ifeq (,$(RC_INDIGO))
13INSTALL_PREFIX=""
14else
15INSTALL_PREFIX="$(SDKROOT)"
16endif
Bob Wilson0dd0b4d2011-11-27 05:39:5817INSTALL_DIR=$(DSTROOT)/$(INSTALL_PREFIX)
18
19.PHONY: help installsrc clean installhdrs do-installhdrs install
Nick Kledzik8feadca2011-05-24 20:27:3120
Howard Hinnant3c8894b2011-07-04 14:12:2721help::
22echo Use make install DSTROOT=<destination>
23
Howard Hinnantbc8d3f92010-05-11 19:42:1624installsrc:: $(SRCROOT)
25
26ditto $(SRCDIRS)/include $(SRCROOT)/include
Nick Kledzikc7e4d822010-09-10 20:42:3627ditto $(SRCDIRS)/lib $(SRCROOT)/lib
Howard Hinnantbc8d3f92010-05-11 19:42:1628ditto $(SRCDIRS)/src $(SRCROOT)/src
29ditto $(SRCDIRS)/Makefile $(SRCROOT)/Makefile
30
31clean::
32
33installhdrs::
34
Bob Wilson0dd0b4d2011-11-27 05:39:5835$(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/include do-installhdrs
36$(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/lib do-installhdrs
37$(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/clang-ide/lib do-installhdrs
38$(MAKE) HEADER_DIR=$(INSTALL_DIR)/Developer/usr/lib do-installhdrs
39$(MAKE) HEADER_DIR=$(INSTALL_DIR)/Developer/Platforms/iPhoneOS.platform/usr/lib do-installhdrs
40
41# The do-installhdrs target is also used by clang's runtime/libcxx makefile.
42do-installhdrs:
43mkdir -p $(HEADER_DIR)/c++/v1/ext
44rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* \
45 $(HEADER_DIR)/c++/v1/
46chown -R root:wheel $(HEADER_DIR)/c++
47chmod 755 $(HEADER_DIR)/c++/v1
48chmod 644 $(HEADER_DIR)/c++/v1/*
49chmod 755 $(HEADER_DIR)/c++/v1/ext
50chmod 644 $(HEADER_DIR)/c++/v1/ext/*
Howard Hinnantbc8d3f92010-05-11 19:42:1651
52install:: installhdrs $(DESTDIR)
53
54cd lib && ./buildit
55ditto lib/libc++.1.dylib $(SYMROOT)/usr/lib/libc++.1.dylib
Bob Wilson0dd0b4d2011-11-27 05:39:5856cd lib && dsymutil -o $(SYMROOT)/libc++.1.dylib.dSYM \
57 $(SYMROOT)/usr/lib/libc++.1.dylib
58mkdir -p $(INSTALL_DIR)/usr/lib
59strip -S -o $(INSTALL_DIR)/usr/lib/libc++.1.dylib \
60 $(SYMROOT)/usr/lib/libc++.1.dylib
61cd $(INSTALL_DIR)/usr/lib && ln -s libc++.1.dylib libc++.dylib